"""
4. 切片的使用

题目：编写一个Python程序，随机生成20个由大小写字母、数字和下划线组成的字符组，并使用字符串、列表、集合和元组的方法打印出来。
对字符串和列表切片，用两种方式取出4-14位的字符。
"""
import random
import string

# 随机生成20个字符
chars = ''
for i in range(20):
    a_z = chr(random.randint(ord('a'), ord('z')))   # unicode
    A_Z = chr(random.randint(ord('A'), ord('Z')))
    _0_9 = str(random.randint(0, 9))     # 数字需要先转换为字符串
    chars += random.choice([a_z, A_Z, _0_9])


char_list = list(chars)
char_set = set(chars)
char_tuple = tuple(chars)

print("字符串形式:", chars)
print("列表形式:", char_list)
print("集合形式:", char_set)
print("元组形式:", char_tuple)

# 切片取出4-14位的字符
print("字符串切片:", chars[3:14])
print("列表切片:", char_list[3:14])
